影片連結:https://www.youtube.com/watch?v=qXxcDML-tFQ
YouTube 頻道:https://www.youtube.com/c/kaochenlong
在上一集,我們花了十幾個步驟終於把 Google 的 OAuth 認證設定完成,拿到了 Client ID 和 Client Secret。現在,我們終於可以享用這個成果了!這一集,我們將深入探討如何使用 n8n 的 Gmail 節點來實現自動化的郵件收發,包括寄信、收信、自動回覆,等實用的技巧。
你會發現,前面那些繁瑣的 OAuth 設定步驟做完之後,接下來使用 Gmail 功能真的非常簡單。
當你在 n8n 中搜尋 Gmail,會發現這個節點提供了豐富的功能:
每一個功能都對應著我們在 Gmail 中的日常操作,而透過 n8n,我們可以將這些操作自動化。
讓我們從最簡單的寄信開始。首先,建立一個新的工作流程:
接下來設定郵件內容:
收件人:你的測試信箱(記得寄給自己測試,不要寄給我!)
主旨:Hello World
訊息格式:HTML
內容:你好嗎?
這裡的每個欄位都很直觀:
執行這個工作流程,當你看到綠色勾勾,就代表寄出去了。你應該會在信箱中收到一封非常 Live、非常及時、火燙的信件。簡單吧?但是等等,你可能會注意到一個問題...
當你收到剛才寄出的信件時,應該會在郵件底部看到一行 "This email was sent automatically with n8n" 的字樣。看了不是很舒服對吧?你應該不會想要被老闆發現說「哎呦,原來你這個信是 n8n 自動寄的」。你要讓他有一種你是有在工作的感覺。
解決方法很簡單,但它藏在一個有趣的地方:
重新執行工作流程,這次收到的郵件底下就不會有那一行 n8n 的字樣了。
現在讓我們來做一些更有趣的事情。還記得我們之前做的天龍書局排行榜嗎?假設我們想要每天寄一封郵件,告訴老闆今天有哪些 Python 相關的書籍在排行榜上。
如果你直接把篩選後的資料接到 Gmail 節點,會發生什麼事?
篩選節點 → 2筆資料 → Gmail節點 → 寄出2封信
注意看前一個節點的輸出,如果有兩筆資料(兩個 items),n8n 會寄出兩封信!如果有 30 本書,就會寄 30 封信,那你老闆就被煩死了。
我們需要先把多筆資料彙整成一筆,這時候要用到 Summarize 節點。組合的英文不知道大家知不知道,如果不知道的話,剛好趁這個機會學一下,它叫做 Concatenate:
這裡有個重要的技巧,可能比較不是工程師的話會不知道:在 HTML 裡面,換行是沒有意義的,它不會被渲染出來。所以如果你要寄 HTML 格式的郵件,分隔符號要用 HTML 的換行標籤 <br>
,而不是一般的換行符號(Line Break)。
現在我們可以在郵件內容中這樣寫:
今天天瓏書局跟 Python 有關的書有 <br />
{{ $json.concatenated_books }}
雖然在預覽時看起來有點怪(因為 <br>
標籤還沒被渲染),但實際上這個信件到時候會正確換行,不用擔心。
收信功能使用的是橘色的 Trigger 節點(閃電圖示),它可以設定定期檢查信箱。在 Gmail Trigger 節點中,你可以設定 Poll Times(多久去拉一次信):
在 Filters 選項中,你可以決定要收什麼樣的信。因為如果沒有特別講的話,它會全部都收,這樣可能會有點沒有效率:
收到信後要自動回覆,流程是這樣的:
Gmail Trigger → Gmail (Reply to Message)
在 Reply to Message 節點中,最重要的是設定 Message ID。這時你可能會想:「哇,這是什麼?我不知道!」
別擔心,看一下左手邊,這是你剛才收到的信對不對?在信裡面,這個 ID 就是那個 Message ID。所以你要把這個 ID 拖拉過來,這樣代表說待會如果回覆,就會回覆給原本寄信給我的人。
寄完信之後,問題來了。如果再跑一次這個工作流程會發生什麼事?會再去收一次信,然後再回一次信!為什麼?
因為我們設定只收未讀信件,但是我們沒有把信標記成已讀,所以它會發現「這封信我沒有讀過」,然後又再回一次,到時候你就被罵了。完整的自動回覆流程應該是:
Gmail Trigger → Reply to Message → Mark as Read
怎麼把信件標記成已讀呢?
這裡要特別小心! 你要標記的是原本對方寄給你的信,不是你回覆的信,所以 Message ID 要選 Gmail Trigger 節點的 ID,而不是 Reply 節點的 ID。是說,要怎麼知道要選這個 ID?不難,多試幾次(或多被罵幾次)你就學會了。
透過這些功能,你可以實現:
這一集我們學會了:
使用起來應該還蠻簡單的,至少跟上一集比起來,這應該簡單很多了。
下一集,我們將結合 Google Sheets,做一些比較有趣的應用。例如說檢查庫存,如果你的庫存是 Excel 做的話,我們可以讓 n8n 來檢查庫存量,如果不夠就發信件通知。這將展示如何整合不同的 Google 服務,建立更複雜、更實用的自動化流程。
痛苦的部分(OAuth 設定)已經過去,接下來就是享受自動化帶來的便利了!